/*
 * PostgresqQuery object defines the needed query functions for the dbConnect PostgreSQL driver
 * Copyright (C) 2003 Johnathan Ingram, jingram@rogueware.org
 *
 * This library is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   This library is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *   Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  US
 *
 */


#ifndef __PGSQL_OID_TYPES_H__
#define __PGSQL_OID_TYPES_H__


/* Redefine the PostgreSQL defined OID into c++ defines.
 *
 * The defines are generated with the PostgreSQL query:
 *     SELECT rpad('#define PG_TYPE_' || upper(typname), 41) || oid FROM pg_type ORDER BY oid
 *
 * This file allows for DbConnect to manipulate the OID's using description defines.
 * The query should be run against all new PostgreSQL releases and this file regenerated before compiling the driver.
 *
 * I do believe the __ represent array types :/
 */


#define PG_TYPE_BOOL                     16
#define PG_TYPE_BYTEA                    17
#define PG_TYPE_CHAR                     18
#define PG_TYPE_NAME                     19
#define PG_TYPE_INT8                     20
#define PG_TYPE_INT2                     21
#define PG_TYPE_INT2VECTOR               22
#define PG_TYPE_INT4                     23
#define PG_TYPE_REGPROC                  24
#define PG_TYPE_TEXT                     25
#define PG_TYPE_OID                      26
#define PG_TYPE_TID                      27
#define PG_TYPE_XID                      28
#define PG_TYPE_CID                      29
#define PG_TYPE_OIDVECTOR                30
#define PG_TYPE_SET                      32
#define PG_TYPE_PG_TYPE                  71
#define PG_TYPE_PG_ATTRIBUTE             75
#define PG_TYPE_PG_PROC                  81
#define PG_TYPE_PG_CLASS                 83
#define PG_TYPE_PG_SHADOW                86
#define PG_TYPE_PG_GROUP                 87
#define PG_TYPE_PG_DATABASE              88
#define PG_TYPE_SMGR                     210
#define PG_TYPE_POINT                    600
#define PG_TYPE_LSEG                     601
#define PG_TYPE_PATH                     602
#define PG_TYPE_BOX                      603
#define PG_TYPE_POLYGON                  604
#define PG_TYPE_LINE                     628
#define PG_TYPE__LINE                    629
#define PG_TYPE_CIDR                     650
#define PG_TYPE__CIDR                    651
#define PG_TYPE_FLOAT4                   700
#define PG_TYPE_FLOAT8                   701
#define PG_TYPE_ABSTIME                  702
#define PG_TYPE_RELTIME                  703
#define PG_TYPE_TINTERVAL                704
#define PG_TYPE_UNKNOWN                  705
#define PG_TYPE_CIRCLE                   718
#define PG_TYPE__CIRCLE                  719
#define PG_TYPE_MONEY                    790
#define PG_TYPE__MONEY                   791
#define PG_TYPE_MACADDR                  829
#define PG_TYPE_INET                     869
#define PG_TYPE__BOOL                    1000
#define PG_TYPE__BYTEA                   1001
#define PG_TYPE__CHAR                    1002
#define PG_TYPE__NAME                    1003
#define PG_TYPE__INT2                    1005
#define PG_TYPE__INT2VECTOR              1006
#define PG_TYPE__INT4                    1007
#define PG_TYPE__REGPROC                 1008
#define PG_TYPE__TEXT                    1009
#define PG_TYPE__TID                     1010
#define PG_TYPE__XID                     1011
#define PG_TYPE__CID                     1012
#define PG_TYPE__OIDVECTOR               1013
#define PG_TYPE__BPCHAR                  1014
#define PG_TYPE__VARCHAR                 1015
#define PG_TYPE__INT8                    1016
#define PG_TYPE__POINT                   1017
#define PG_TYPE__LSEG                    1018
#define PG_TYPE__PATH                    1019
#define PG_TYPE__BOX                     1020
#define PG_TYPE__FLOAT4                  1021
#define PG_TYPE__FLOAT8                  1022
#define PG_TYPE__ABSTIME                 1023
#define PG_TYPE__RELTIME                 1024
#define PG_TYPE__TINTERVAL               1025
#define PG_TYPE__POLYGON                 1027
#define PG_TYPE__OID                     1028
#define PG_TYPE_ACLITEM                  1033
#define PG_TYPE__ACLITEM                 1034
#define PG_TYPE__MACADDR                 1040
#define PG_TYPE__INET                    1041
#define PG_TYPE_BPCHAR                   1042
#define PG_TYPE_VARCHAR                  1043
#define PG_TYPE_DATE                     1082
#define PG_TYPE_TIME                     1083
#define PG_TYPE_TIMESTAMP                1114
#define PG_TYPE__TIMESTAMP               1115
#define PG_TYPE__DATE                    1182
#define PG_TYPE__TIME                    1183
#define PG_TYPE_TIMESTAMPTZ              1184
#define PG_TYPE__TIMESTAMPTZ             1185
#define PG_TYPE_INTERVAL                 1186
#define PG_TYPE__INTERVAL                1187
#define PG_TYPE__NUMERIC                 1231
#define PG_TYPE_TIMETZ                   1266
#define PG_TYPE__TIMETZ                  1270
#define PG_TYPE_BIT                      1560
#define PG_TYPE__BIT                     1561
#define PG_TYPE_VARBIT                   1562
#define PG_TYPE__VARBIT                  1563
#define PG_TYPE_NUMERIC                  1700
#define PG_TYPE_REFCURSOR                1790
#define PG_TYPE__REFCURSOR               2201
#define PG_TYPE_REGPROCEDURE             2202
#define PG_TYPE_REGOPER                  2203
#define PG_TYPE_REGOPERATOR              2204
#define PG_TYPE_REGCLASS                 2205
#define PG_TYPE_REGTYPE                  2206
#define PG_TYPE__REGPROCEDURE            2207
#define PG_TYPE__REGOPER                 2208
#define PG_TYPE__REGOPERATOR             2209
#define PG_TYPE__REGCLASS                2210
#define PG_TYPE__REGTYPE                 2211
#define PG_TYPE_RECORD                   2249
#define PG_TYPE_CSTRING                  2275
#define PG_TYPE_ANY                      2276
#define PG_TYPE_ANYARRAY                 2277
#define PG_TYPE_VOID                     2278
#define PG_TYPE_TRIGGER                  2279
#define PG_TYPE_LANGUAGE_HANDLER         2280
#define PG_TYPE_INTERNAL                 2281
#define PG_TYPE_OPAQUE                   2282
#define PG_TYPE_PG_ATTRDEF               16385
#define PG_TYPE_PG_CONSTRAINT            16387
#define PG_TYPE_PG_INHERITS              16389
#define PG_TYPE_PG_INDEX                 16391
#define PG_TYPE_PG_OPERATOR              16393
#define PG_TYPE_PG_OPCLASS               16395
#define PG_TYPE_PG_AM                    16397
#define PG_TYPE_PG_AMOP                  16399
#define PG_TYPE_PG_AMPROC                16401
#define PG_TYPE_PG_LANGUAGE              16403
#define PG_TYPE_PG_LARGEOBJECT           16405
#define PG_TYPE_PG_AGGREGATE             16407
#define PG_TYPE_PG_STATISTIC             16409
#define PG_TYPE_PG_REWRITE               16411
#define PG_TYPE_PG_TRIGGER               16413
#define PG_TYPE_PG_LISTENER              16415
#define PG_TYPE_PG_DESCRIPTION           16417
#define PG_TYPE_PG_CAST                  16419
#define PG_TYPE_PG_NAMESPACE             16595
#define PG_TYPE_PG_CONVERSION            16597
#define PG_TYPE_PG_DEPEND                16599
#define PG_TYPE_PG_TOAST_16384           16655
#define PG_TYPE_PG_TOAST_16386           16658
#define PG_TYPE_PG_TOAST_1262            16661
#define PG_TYPE_PG_TOAST_16416           16664
#define PG_TYPE_PG_TOAST_1261            16667
#define PG_TYPE_PG_TOAST_1255            16670
#define PG_TYPE_PG_TOAST_16410           16673
#define PG_TYPE_PG_TOAST_1260            16676
#define PG_TYPE_PG_TOAST_16408           16679
#define PG_TYPE_PG_USER                  16682
#define PG_TYPE_PG_RULES                 16685
#define PG_TYPE_PG_VIEWS                 16689
#define PG_TYPE_PG_TABLES                16692
#define PG_TYPE_PG_INDEXES               16695
#define PG_TYPE_PG_STATS                 16699
#define PG_TYPE_PG_STAT_ALL_TABLES       16703
#define PG_TYPE_PG_STAT_SYS_TABLES       16707
#define PG_TYPE_PG_STAT_USER_TABLES      16710
#define PG_TYPE_PG_STATIO_ALL_TABLES     16713
#define PG_TYPE_PG_STATIO_SYS_TABLES     16717
#define PG_TYPE_PG_STATIO_USER_TABLES    16720
#define PG_TYPE_PG_STAT_ALL_INDEXES      16723
#define PG_TYPE_PG_STAT_SYS_INDEXES      16727
#define PG_TYPE_PG_STAT_USER_INDEXES     16730
#define PG_TYPE_PG_STATIO_ALL_INDEXES    16733
#define PG_TYPE_PG_STATIO_SYS_INDEXES    16737
#define PG_TYPE_PG_STATIO_USER_INDEXES   16740
#define PG_TYPE_PG_STATIO_ALL_SEQUENCES  16743
#define PG_TYPE_PG_STATIO_SYS_SEQUENCES  16746
#define PG_TYPE_PG_STATIO_USER_SEQUENCES 16749
#define PG_TYPE_PG_STAT_ACTIVITY         16752
#define PG_TYPE_PG_STAT_DATABASE         16755
#define PG_TYPE_PG_LOCKS                 16758
#define PG_TYPE_PG_SETTINGS              16761


#endif
